Typical relational database management system (RDBMS) products are limited in their ability to provide users with specific views of analyzed data. Thus, several categories of database software have been developed to provide an interface to enable users to transform or limit raw data according to user-defined or pre-defined functions, and quickly and interactively examine the results. One type of software developed for this purpose is called data mining. Another is on-line analytical processing or OLAP, which typically involves aggregating, summarizing, consolidating, summing, and analyzing data retrieved from databases from different points-of-view to find patterns, trends and exceptions. The databases on which data mining and OLAP operate are often referred to as data warehouses.
For example, a user can request that data be analyzed to display a spreadsheet showing all of a company's widget products sold in Pennsylvania in the month of November, compare revenue figures with those for the same products in September, and then see a comparison of widget product sales in Washington for the same time period.
Data mining and OLAP tools are based on a multidimensional data model. The OLAP model, for instance, views data in the form of a data cube. Whereas a relational database can be thought of as two-dimensional, a multi-dimensional database considers each data attribute (such as product, geographic sales region and time period) as a separate dimension. Although a cube is usually thought of as a three-dimensional geometric structure, in OLAP terminology, a cube is n-dimensional. A cube thus allows data to be modeled and viewed in multiple dimensions, as defined by dimensions and measures.
A dimension is a perspective by which an organization wants to keep records. A retail company, for example, may want to create a sales data warehouse to keep records of the store's sales with respect to the dimensions time, item, branch and location. These dimensions allow the store to keep track of attributes like monthly sales of items and the branches and locations at which the items were sold. A time dimension might consist of days, weeks, months, and years, while a location dimension might consist of cities, states and countries. Dimension members act as indices for identifying a particular cell or range of cells within a multi-dimensional array.
A multi-dimensional data model is typically organized around a central theme, like sales, for instance. The theme is represented by measures, or quantities by which relationships between dimensions can be analyzed. Examples of measures for a sales data warehouse might include sales amounts in dollars, and numbers of units sold. Measures that are organized according to a particular attribute may belong to a measure group. For example, customer, product and sales amounts in dollars may belong to a sales measure group.
U.S. Pat. No. 6,477,536 entitled “Virtual Cubes” issued Nov. 5, 2002 describes systems and methods for creating and maintaining a virtual cube. A virtual cube is a combination of multiple cubes in one logical cube. Measures and dimensions from the complete set of dimensions and measures of the component physical cubes are selected as dimensions for a logical virtual cube which users may perceive as a single cube. U.S. patent application Ser. No. 10/606,343 entitled “System and Method for Analytically Modeling Data from Different Measure Groups onto a Single Cube” filed Jun. 25, 2003 describes modeling data from different measure groups onto a single cube.
Typically in an organization, users create a database wherein the data is organized into one or more cubes, each cube defined by dimensions and measures, with measure data organized into measure groups, for the purpose of processing the data in ways meaningful to the organization. A number of different departments in the organization may want to use the same data, typically requiring the creation of a copy of the data to be placed on another computer. Once more than one copy of the data exists, problems arise with keeping all the copies updated. It would be helpful if there were a way to allow data to be shared (distributed) while minimizing the problems associated with having multiple copies.